// buffer,二进制数据转换成字符串data.toString()
// 字符串转buffer,
const fs = require('fs');
const http = require('http');
const path = require('path');
const url = require('url');
fs.readFile('../users.json',function(err,data){
    if(err){
        console.log(err)
    }
    var buffer = JSON.parse(data.toString())
})
// 和路径相关的预定义变量process
// argv是数组argv[0]是node安装位置argv[1]是当前执行文件位置
// console.log(process.argv);
console.log("执行命令的路径："+process.cwd());
console.log("执行文件的文件地址:"+__filename);
console.log("执行文件的文件上层目录:"+__dirname);
// path相关
// resolve()拼接路径，绝对路径
console.log("resolve()拼接绝对路径"+path.resolve('./test','path.js'));
console.log("join()拼接相对路径"+path.join('./test','./path.js'));
console.log("dirname()？？？"+path.dirname("D:/test/index.js"));
console.log("extname()获取后缀："+path.extname("D:/test/index.json"));
// url模块,parse格式化url为对象url.parse(url,true),第二个参数默认为false,true表示格式化query参数为对象
const myurl = url.parse("http://pinshang.shop:9999/index?user=jane&&id=1",true);
console.log(myurl.query);
// fs模块，在nodejs里 所有的文件操作 只要加上 Sync 就是同步执行的 否则就是异步执行的。
// 判断文件或者目录是否存在fs.existSync()
console.log(fs.existsSync('../fil'));
// 1、读取文件(不能读取目录)
// console.log(fs.readFileSync('./process.json').toString());
// 2、创建文件，写入内容到文件
// fs.writeFileSync('./test.txt',"我是写入的内容？？？");
// 3、删除文件,此方法删除的文件不进入回收站，注意
// fs.unlink('./test.txt',err=>{
//     if(err){
//         console.log(err)
//     }
//     console.log('删除成功');
// })
// 4、重命名文件,路径要对应，否则重命名的文件可能移动位置
// fs.renameSync('./test/test.txt','inde.txt')

// 目录操作
// 1、mkdir创建一个目录
// fs.mkdir('./test',0777,function(err){
//     if(err){
//         return console.log(err)
//     }
//     console.log('目录创建成功')
// })
// 2、删除一个目录rmdir，只能删除空文件夹
// fs.rmdir('./test',function(err){
//     if(err){
//         return console.log(err)
//     }
//     console.log('删除目录成功')
// })
// 3、重命名目录，同重命名文件rename
// fs.renameSync('./test','./node')
// 4、读取目录,只能读取一层
fs.readdir('./node',(err,data)=>{
    if(err){
        console.log(err)
    }
    console.log(data)
})
// 5、判断文件是不是目录
// fs.statSync(url).isDirectiry()
console.log('true为目录，反之为文件：'+fs.statSync('./node/test').isDirectory());
const server = http.createServer((req,res)=>{
    res.setHeader("Content-Type","text/html;charset:utf-8");
    res.write(JSON.stringify(url))
    res.end()
})
server.listen(8888)
